package drugdealer.dados;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;

public class Paciente {
	protected String cpf;
	protected String nome;
	protected String rg;
	protected String email;
	protected Endereco endereco;
	protected Date dataNascimento;
	protected Vector<String> telefones;
	protected Vector<Consulta> consultas;

	public Paciente(String cpf, String nome, String rg, String email,
			Endereco endereco) {
		this.cpf = cpf;
		this.nome = nome;
		this.rg = rg;
		this.email = email;
		this.endereco = endereco;
		this.telefones = new Vector<String>();
		this.consultas = new Vector<Consulta>();
	}
	
	/**
	 * @return the cpf
	 */
	public String getCPF() {
		return cpf;
	}
	/**
	 * @param cpf the cpf to set
	 */
	public void setCPF(String cpf) {
		this.cpf = cpf;
	}
	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}
	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}
	/**
	 * @return the endereco
	 */
	public Endereco getEndereco() {
		return endereco;
	}
	/**
	 * @param endereco the endereco to set
	 */
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}
	/**
	 * @param nome the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}
	/**
	 * @return the rg
	 */
	public String getRG() {
		return rg;
	}
	/**
	 * @param rg the rg to set
	 */
	public void setRG(String rg) {
		this.rg = rg;
	}

	/**
	 * @return
	 */
	public Iterator getTelefones() {
		return this.telefones.iterator();
	}

	/**
	 * @param telefone
	 */
	public void addTelefone(String telefone) {
		this.telefones.add(telefone);
	}
	
	/**
	 * @param consulta
	 */
	public void addConsulta(Consulta consulta) {
		this.consultas.add(consulta);
	}
	
	/**
	 * @param consulta
	 */
	public void removeConsulta(Consulta consulta) {
		this.consultas.remove(consulta);
	}
	
	/**
	 * @return
	 */
	public Iterator getConsultas() {
		return this.consultas.iterator();
	}

	/**
	 * @return the dataNascimento
	 */
	public Date getDataNascimento() {
		return dataNascimento;
	}

	/**
	 * @param dataNascimento the dataNascimento to set
	 */
	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	
	/**
	 * @return
	 */
	public String getFormatedDataNascimento() {
		return 
			(new SimpleDateFormat("dd/MM/yyyy")).format(this.dataNascimento);
	}
}
